Memory timings or RAM timings describe the timing information of a memory module or the onboard LPDDRx. Due to the inherent qualities of VLSI and microelectronics, memory chips require time to fully execute commands. Executing commands too quickly will result in data corruption and results in system instability. With appropriate time between commands, memory modules/chips can be given the opportunity to fully switch transistors, charge capacitors and correctly signal back information to the memory controller. Because system performance depends on how fast memory can be used, this timing directly affects the performance of the system.
The timing of modern synchronous dynamic random-access memory (SDRAM) is commonly indicated using four parameters: CL, TRCD, TRP, and TRAS in units of ; they are commonly written as four numbers separated with hyphens, e.g. 7-8-8-24. Variations include:
These parameters (as part of a larger whole) specify the clock latency of certain specific commands issued to a random access memory. Lower numbers imply a shorter wait between commands (as determined in clock cycles). The Intel systems also have Gear 2 (Gear type 0) and Gear 4 (Gear type 1).
| CAS latency | CL | The number of cycles between sending a column address to the memory and the beginning of the data in response. This is the number of cycles it takes to read the first bit of memory from a DRAM with the correct row already open. Unlike the other numbers, this is not a minimum, but an exact number that must be agreed on between the memory controller and the memory. |
| Row Address to Column Address Delay | TRCD | The minimum number of clock cycles required between opening a row of memory and accessing columns within it. The time to read the first bit of memory from a DRAM without an active row is TRCD + CL.
Some memory controllers break this down into two values, TRCDwr (write) and TRCDrd (read). |
| Row Precharge Time | TRP | The minimum number of clock cycles required between issuing the precharge command and opening the next row. The time to read the first bit of memory from a DRAM with the wrong row open is TRP + TRCD + CL. |
| Row Active Time | TRAS | The minimum number of clock cycles required between a row active command and issuing the precharge command. This is the time needed to internally refresh the row, and overlaps with TRCD. In SDRAM modules, it is simply TRCD + CL. Otherwise, approximately equal to TRCD + 2×CL. |
Notes:
| ||
What determines absolute latency (and thus system performance) is determined by both the timings and the memory clock frequency. When translating memory timings into actual latency, timings are in units of clock cycles, which for double data rate memory is half the speed of the commonly quoted transfer rate. Without knowing the clock frequency it is impossible to state if one set of timings is "faster" than another.
For example, DDR3-2000 memory has a 1000 MHz clock frequency, which yields a 1 ns clock cycle. With this 1 ns clock, a CAS latency of 7 gives an absolute CAS latency of 7 ns. Faster DDR3-2666 memory (with a 1333 MHz clock, or 0.75 ns exactly; the 1333 is rounded) may have a larger CAS latency of 9, but at a clock frequency of 1333 MHz the amount of time to wait 9 clock cycles is only 6.75 ns. It is for this reason that DDR3-2666 CL9 has a smaller absolute CAS latency than DDR3-2000 CL7 memory.
On some DIMM modules, there are also "verified" overclocking profiles in the SPD using XMP or Expo formats. They indicate faster timing information (and higher voltages) that the manufacturer has verified to work with the module: higher voltages tend to reduce memory latency (time-to-stabilize) at a cost of more heat production. The BIOS on a PC may allow the user to choose among JEDEC profiles, XMP/Expo profiles, or define their own timing adjustments in an effort to increase performance (with possible risk of decreased stability).
On Alder Lake CPUs and later, tRCD and tRP are no longer linked, while before Intel did not allow to set them to different values.
DDR4 introduced support for FGR (fine granular refresh), with its own tRFC2 and tRFC4 timings, while DDR5 retained only tRFC2.
Increasing memory bandwidth, even while increasing memory latency, may improve the performance of a computer system with multiple processors and/or multiple execution threads. Higher bandwidth will also boost performance of integrated graphics processors that have no dedicated video memory but use regular RAM as VRAM. Modern x86 processors are heavily optimized with techniques such as superscalar instruction pipelines, out-of-order execution, memory prefetching, memory dependence prediction, and branch prediction to preemptively load memory from RAM (and other caches) to speed up execution even further. With this amount of complexity from performance optimization, it is difficult to state with certainty the effects memory timings may have on performance. Different workloads have different memory access patterns and are affected differently in performance by these memory timings.
The analogous part of the BIOS in modern AMD systems is the AGESA. The memory controller is integrated into the CPU/APU as part of the Infinity Fabric on-chip interconnect.
|
|